File name Mesa_4.0_Compiler_Update_May78.pdfInter-Office Memorandum
To Mesa Users Date May 31, 1978
From Ed Satterthwaite Location Palo Alto
Subject Mesa 4.0 Compiler Update Organization SOD/SO
XEROX
Filed on: [IRIS] DOC>COMPILER40.BRAVO
This memo describes changes to the Mesa language and compiler that have been made since
the last release (October 17, 1977). As usual, the list of compiler-related change requests
closed by Mesa 4.0 will appear separately as part of the Software Release Description.
The language accepted by the Mesa 4.0 compiler has several significant extensions and a few
minor changes. It features a process mechanism, enhanced arithmetic capabilities, long and
base-relative pointers, and more general block structure.
Because of changes in symbol table and BCD formats, all existing Mesa programs must be
recompiled. There are minor incompatibilities with Mesa 3.0 at the source level in the areas
of signed/unsigned arithmetic and the scope of OPEN in an iterative statement. These
incompatibilities should have negligible impact on existing programs. The syntax and
semantics of declaring (but not calling) machine-coded procedures have changed
substantially.
Page and section numbers in this update not otherwise qualified refer to the Mesa Language
Manual, Version 3.0. The BNF descriptions of new or revised syntax follow the
conventions introduced in that manual. For phrase classes used but not redefined here, see
its Appendix D. Revisions of phrase class definitions are cumulative; except as noted, the
appearance of "... " as an alternative indicates that an existing definition is being augmented.
A definition without "... " supersedes any definition of the same phrase class in the manual.
Arithmetic
Mesa 4.0 supports double-precision integer arithmetic (type LONG INTEGER) and provides
some help with floating-point computations (type REAL). In conjunction with these changes,
the rules governing combination of signed and unsigned values have been more carefully
defined (see the Appendix to this memo).
Syntax
PredefinedType ::= INTEGER I CARDINAL I LONG INTEGER I REAL I
BOOLEAN I CHARACTER I STRING I UNSPECIFIED WORD
Primary .. -
"- identifier [ Expression ] I LONG [ Expression ]
Mesa 4.0 Compiler Update 2
~
Signed and Unsigned Arithmetic
The rules governing the use of signed and unsigned representations in single-precision
arithmetic have been reformulated. In previous versions of Mesa, conditions under which
an operation was considered to overflow were not well defined. As a consequence, options
such as overflow detection a |